package com.ecloud.common.base.translate;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 自动翻译注解<br>
 * 基于序列化实现,几乎不影响性能
 *
 * @author LiuGangQiang Create in 2021/08/18
 */
@Inherited
@Documented
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AutoTranslate {
    /**
     * 类型 对应码表或者翻译表中的类型,为空字符串时默认不处理
     *
     * @author LiuGangQiang Create in 2021/08/18
     * @return {@link String}
     */
    String type();

    /**
     * 是否启用,默认启用
     *
     * @author LiuGangQiang Create in 2021/08/18
     * @return {@link Boolean}
     */
    boolean enable() default true;

    /**
     * 翻译来源 请查看 {@link TranslateSource}<br>
     * 默认使用字典表
     *
     * @author LiuGangQiang Create in 2021/08/18
     * @return {@link TranslateSource}
     */
    TranslateSource source();
}
